cr	equ	0Dh		;������� �������
lf	equ	0Ah		;������� ������
;
;	������� ������ ������
;	---------------------
;
Send_crlf:
	push	ax
	push	dx
	mov	ah,2 		;������� ������
	mov	dl,cr		;��������� ������
	int	21h		;����� �������
	mov	dl,lf
	int	21h		; -"-
	pop	dx
	pop	ax
	ret
;
;	������� ������
;	--------------
;
Clear_screen:
	push	ax
	push	bx
	push	cx
	push	dx
	xor	al,al		;�������� ��� ����
	xor	cx,cx		;������� ����� ���� � (0,0)
	mov	dh,49		;������ ������ ������ - 49
	mov	dl,79		;������ ������� � 79 �������
	mov	bh,7		;��������� ���������� ��������
	mov	ah,6		;��������
	int	10h		; ����
	xor	dl,dl		;������� ����������
	xor	dh,dh		; �������
	xor	bx,bx		;������� �������������
	xor	al,al		;���������
	mov	ah,2		; �������
	int	10h		; � �������� �����
	pop	dx
	pop	cx
	pop	bx
	pop	ax
	ret
;
;	��������� �������
;	-----------------
;
Set_cursor:
	push	ax
	push	bx
	push	cx
	push	dx
	mov	dh,[es:B]	;DH <- ����� ������ ����� �������
	shr	dh,4		; �������� ����� ����� �� 16
	mov	dl,[es:B]       ;DL <- ����� ����� � ������
	mov	al,dh		; ������� �������� ����� �������
	shl	al,4		; ����� � ���������� Sector (���������� B)
	sub	dl,al		; � �������� ���������� ����� � ������
	mov	al,dl           ;�������������� ������ �����
	mov	bl,3		; � ������ �����
	mul	bl		; � ����� �������
	mov	dl,al           ; �� ������
	add	dl,[es:Nt]      ;���������� NT ��� �������� �������
	add	dl,5            ;������������� ����� ����� � ������
	add	dh,4		; � ����� ���������� ������
        xor	bx,bx		;������� �������������
	xor	al,al		;���������
	mov	ah,2h		; �������
	int	10h		; � �������� �����
	pop	dx
	pop	cx
	pop	bx
	pop	ax
	ret
;
;	����������� ������� �� ���� ������� �����
;	-----------------------------------------
;
Cur_left:
	cmp	[es:Nt],byte 0
	je	.M1
	dec	byte [es:Nt]
	jmp	.Exit
.M1:	inc	byte [es:Nt]
	dec	byte [es:B]
.Exit:	call	Set_cursor
	ret
;
;	����������� ������� �� ���� ������� �����
;	-----------------------------------------
;
Cur_top:
	sub	[es:B],byte 16
	call	Set_cursor
	ret
;
;	����������� ������� �� ���� ������� ������
;	------------------------------------------
;
Cur_right:
	cmp	[es:Nt],byte 0
	je	.M1
	dec	byte [es:Nt]
	inc	byte [es:B]
	jmp	.Exit
.M1:	inc	byte [es:Nt]
.Exit:	call	Set_cursor
	ret
;
;	����������� ������� �� ���� ������� ����
;	----------------------------------------
;
Cur_down:
	add	[es:B],byte 16
	call	Set_cursor
	ret
